[% setvar title This week on Perl 6 (17-23 June 2002) %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='This week on Perl 6 (17-23 June 2002)'></a><h1>This week on Perl 6 (17-23 June 2002)</h1>
<p>by Piers Cawley, 020020624</p>
<a name='Notes'></a><h2>Notes</h2>
<p>It's been a while since the last Perl 6 digest and summarizing
everything that's happened since then would take, ooh, a while. So
I've punted on that, and just pretended that the last one was
published this time last week. (Well sort of, sometimes I'll refer
back to earlier posts in threads that continued this week.)</p>
<a name='More 6PAN musings: local namespaces'></a><h2>More 6PAN musings: local namespaces</h2>
<p>John Siracusa
<a href='http://archive.develooper.com/perl6-language@perl.org/msg10140.html' target='_blank'>archive.develooper.com</a>
a bunch of questions about the naming of local modules in Perl6,
pointing us at java's style of uk.org.bofh.html.template, which makes
sure that one organizations templating system won't clash with that of
another. Various schema were proposed, then Larry <a href='http://archive.develooper.com/perl6-language@perl.org/msg10162.html' target='_blank'>archive.develooper.com</a>
and told us that there'd be more than one way to do it, along with
a way of aliasing names to avoid RSI. Aaron Sherman warned us away
from reinventing X.whatever it was addressing.</p>
<p>After some discussion about the merits of long, guaranteed
unique module names versus a standardized module naming schema, Webb
Sprague
<a href='http://archive.develooper.com/perl6-language@perl.org/msg10152.html' target='_blank'>archive.develooper.com</a>
a CPAN &quot;Curation Project&quot; be formed. The idea being that there'd be
the more or less unstructured seething mass of CPAN, and then there'd
be a group of &quot;highly managed, by real people&quot; modules that were
promoted from that pool to an &quot;Extended Perl Library&quot;. Which led to a
discussion about where you'd find the &quot;real people&quot; and a certain
amount of silliness about acronyms.</p>
<p>Favourite quote of the thread: <a href='http://archive.develooper.com/perl6-language@perl.org/msg10149.html' target='_blank'>archive.develooper.com</a></p>
<a name='Regexes and untainting'></a><h2>Regexes and untainting</h2>
<p>Miko
<a href='http://archive.develooper.com/perl6-language@perl.org/msg10166.html' target='_blank'>archive.develooper.com</a>
that, by default regexes shouldn't untaint, and proposed a 'safer'
mechanism for managing taintedness. Jonathan Paton <a href='http://archive.develooper.com/perl6-language@perl.org/msg10167.html' target='_blank'>archive.develooper.com</a>
that some of this is already possible in Perl 5. He also came up with
the idea of marking different rules as untaint safe or unsafe when
they are defined.</p>
<a name='what's new'></a><h2>what's new</h2>
<p>In an effort to understand the state of Perl 6, raptor
<a href='http://archive.develooper.com/perl6-language@perl.org/msg10155.html' target='_blank'>archive.develooper.com</a>
a really good summary of some of the changes from Perl 5 to Perl 6
asking if he'd got the right end of the stick. Damian
<a href='http://archive.develooper.com/perl6-language@perl.org/msg10168.html' target='_blank'>archive.develooper.com</a>
a few things and generally confirmed that the stick was correctly
oriented.</p>
<a name='Meanwhile... over in perl6-internals'></a><h2>Meanwhile... over in perl6-internals</h2>
<a name='latest Parrot'></a><h2>latest Parrot</h2>
<p>Luke Palmer
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10573.html' target='_blank'>archive.develooper.com</a>
why the latest ChangeLog entry was from March 19, and was the Parrot
he'd just got from CVS really the latest version.  Dan explained that
it was, but that the ChangeLog wasn't being kept up to date 'for some
reason', which triggered a small amount of kvetching about CVS. Robert
Spier (sensible chap)
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10577.html' target='_blank'>archive.develooper.com</a>
that all non trivial patches should contain a 'human readable'
changelog entry along with the patch and at least one test. Ask
agreed. And so do I.</p>
<a name='Perl6 grammar'></a><h2>Perl6 grammar</h2>
<p>Melvin Smith posted a <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10561.html' target='_blank'>archive.develooper.com</a>
towards being able to parse Perl 6. Jerome Vuillon pointed us at the
beginnings of a
<a href='http://www.pps.jussieu.fr/~vouillon/parrot/parser.y' target='_blank'>www.pps.jussieu.fr</a> that he
was putting together using yacc, and Sean O'Rourke
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10598.html' target='_blank'>archive.develooper.com</a>
his Parse::RecDescent based grammar sketch. And there was much
rejoicing.</p>
<a name='Irrational fear of macros'></a><h2>Irrational fear of macros</h2>
<p>Melvin Smith <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10567.html' target='_blank'>archive.develooper.com</a>
a joke in the perl 5 source about the sheer number of macros in the
perl 5 source. Which provoked a variety of serious responses. Dave
Goerhrig <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10581.html' target='_blank'>archive.develooper.com</a> that macros weren't inherently bad, but having
hordes of them wasn't necessarily good, and his sig quote:</p>
<pre>   qw/ who is praying for parrot to support XS code, 
       cause he doesn't want to rewrite
       SDL_perl's 11,000 lines /;</pre>
<p>provoked a <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10662.html' target='_blank'>archive.develooper.com</a>
from Tim Bunce proposing a 'wrapper that manages a simple perl5-like
run-time environment'. Tim's .sig (Tim [who doesn't want to rewrite
the DBI's ~4000 lines or tell the many DBD authors that they have to
rewrite their drivers].) gave us a clue as to his motivation in
wanting this too...</p>
<p>The 'Irrational fear of macros' thread proper was <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10582.html' target='_blank'>archive.develooper.com</a>
by that man Dave Goehrig as he launched a defence of macros, pointing
out that &quot;Perl 5's problem with macros ... is that too many of them
remain largely undocumented, under-utilized, or over-exposed.&quot; He
argued for &quot;a dictionary, a work to explain the usage of each element
of the API.  Parrot needs a rosetta stone, through which future
implementors will decipher and re-interpret the decisions made years
in the past.&quot;</p>
<p>Melvin
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10584.html,' target='_blank'>archive.develooper.com</a>
pointing out that macros don't play well with debuggers, and argued
that it's far better to write code that is self explanatory than to
write code that requires to to constantly refer back to a dictionary
to understand it.</p>
<p>Larry, as is his wont, cut through all this with yet another of his
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10585.html' target='_blank'>archive.develooper.com</a>
explaining why perl 5's macro system looks like it does. &quot;After all
these years, I still know exactly what a dPOPTOPnnrl does, and it's
not because I remember the name.&quot;</p>
<p>Meanwhile, Mike Schwern <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10600.html' target='_blank'>archive.develooper.com</a>
his splendidly cunning trick for defining something as both a
subroutine <i>and</i> a macro. Well, I was impressed anyway.</p>
<a name='Tasks for the interested'></a><h2>Tasks for the interested</h2>
<p>Dan posted a <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10589.html' target='_blank'>archive.develooper.com</a>
of other virtual machines, and asked interested people to try and make
lists of the opcodes used by each of them, and what those opcodes
do. And then to write opcode libraries for them. The usual suspects
were all there (Perl5, Python, Ruby, JVM, .NET) along with the dark
horse that is the Infocom Z-machine. Does Dan have a thing for classic
text adventures?</p>
<p>Rafael Garcia-Suarez suggested that if anyone managed to do the job
for Perl 5, p5p would definitely be interested in seeing the results.)
Simon Wistow
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10604.html' target='_blank'>archive.develooper.com</a>
PHP/Zend as another candidate for this approach.</p>
<p>Dan pointed out that, daft as it seemed, the z-machine would be a
really good system to tackle since, as well as needing a custom opcode
library, the z-machine would also need the ability to load packed
files, and that making</p>
<pre>    $ parrot -m:zmachine lurking_horror.dat</pre>
<p>do the right thing &quot;involves most of the infrastructure we'd need to
get working to get .NET and JVM code loaded in.&quot;</p>
<p>It looks like Josh Wilmes has stepped up to this particular plate.</p>
<p>On the Java front, Leon Brocard pointed out his &lt;earlier
post|<a href='http://archive.develooper.com/perl6-internals@perl.org/msg09812.html' target='_blank'>archive.develooper.com</a>&gt;
where he announced his proof of concept for loadable java
bytecodes. Dan encouraged him to keep up the good work.</p>
<a name='matrix design'></a><h2>matrix design</h2>
<p>Josef Höök posted a <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10599.html' target='_blank'>archive.develooper.com</a>
which opened something of a can of worms. People <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10606.html' target='_blank'>archive.develooper.com</a>
for first class matrices (though Dan disagreed with them, pointing at
the PDL project.)</p>
<p>Josef's basic design also got a
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10609.html' target='_blank'>archive.develooper.com</a>
of &quot;Yech! :)&quot; from Dan, who reckoned that it was better to start with
a simple data structure, get that working and then worry about making
it sparse. For some reason this led off into a discussion of hyper
operators.</p>
<p>In a message that doesn't appear to have been archived, Paul Kienzle
pointed us at <a href='http://www.netlib.org/blas/faq.html' target='_blank'>www.netlib.org</a> and reckoned
that a compatible representation would win big because of tools like
LAPACK &quot;which provides fast stable implementations of a lot of very
useful linear algebra.&quot;</p>
<p>Ashley Winters
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10616.html' target='_blank'>archive.develooper.com</a>
that we take advantage of the lazy evaluation we're expecting from
Perl 6 and set things up to do deferred calculation. He also suggested
that we don't &quot;need to worry about optimizing complex operations too
much, the PDL people have come up with miracles before... they just
need the tools.&quot; Which sounds good to me...</p>
<a name='Stack and GC'></a><h2>Stack and GC</h2>
<p>Melvin Smith <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10623.html' target='_blank'>archive.develooper.com</a> a few questions and made a few proposals about the
stack and garbage collection with particular reference to
continuations, coroutines and other entertaining flow of control
constructs. And then released a <i><a href='http://search.cpan.org/perldoc?http:#/archive.develooper.com/perl6-internals@perl.org/msg10624.html'>patch</a></i>
containing his first cut at continuations and exceptions.</p>
<a name='Vtables'></a><h2>Vtables</h2>
<p>David Lloyd has updated the <a href='http://dev.perl.org/perl6/pdd/pdd02_vtables.html.' target='_blank'>dev.perl.org</a></p>
<a name='Glossary'></a><h2>Glossary</h2>
<p>The parrot glossary is now available at
<a href='http://dev.perl.org/perl6/pdd/pdd02_vtables.html' target='_blank'>dev.perl.org</a></p>
<a name='More tests'></a><h2>More tests</h2>
<p>Robert Spier <a href='http://archive.develooper.com/perl6-internals@perl.org/msg10633.html' target='_blank'>archive.develooper.com</a>
that, according to <a href='http://www.hitchhiker.org/parrot_coverage/' target='_blank'>www.hitchhiker.org</a> the
tests only cover 33% of the parrot codebase. We need more tests.</p>
<a name='INTVAL keys'></a><h2>INTVAL keys</h2>
<p>David Lloyd
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10639.html' target='_blank'>archive.develooper.com</a>
the arrival of a new <code>_keyed_int</code> form for every <code>_keyed</code> vtable
method, and asked for contributions and tests that exercise them.</p>
<a name='New stack tests'></a><h2>New stack tests</h2>
<p>Simon Glover
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10643.html' target='_blank'>archive.develooper.com</a>
a torture test of the N stack.</p>
<a name='Another new language'></a><h2>Another new language</h2>
<p>Jeff
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10646.html' target='_blank'>archive.develooper.com</a>
a (currently limited) implementation of FORTH.</p>
<a name='.include directive for new assembler'></a><h2>.include directive for new assembler</h2>
<p>Brian Wheeler has
<a href='http://archive.develooper.com/perl6-internals@perl.org/msg10647.html' target='_blank'>archive.develooper.com</a>
a .include directive for the assembler which was generally liked,
eventually getting committed.</p>
<a name='Steve Fink goes on hiatus'></a><h2>Steve Fink goes on hiatus</h2>
<p>Steve Fink announced that, for at least the next couple of months, he
was going to be too busy to do any work on parrot, and that anyone ho
wanted to was to feel free to do whatever they wanted with has.c and
the regex compiler he'd been working on. Given the speed of Parrot
development it'll be interesting to see his reaction when he comes
back...</p>
</div>
